public class Liczba
{
	public int n;
	public String liczba = "";
	private int Max_Baza=16;
	private static String znaki = "0123456789ABCDEF";
	Liczba() 
	{

	}
	Liczba(int n) 
	{
		this.n = n;		
	}
	Liczba(String n, int podstawa) throws LiczbaException 
	{
		int i, x;
		int p = 1;
		int result = 0;
 
		if ((podstawa > Max_Baza) || (podstawa < 2))
		{
			throw new LiczbaException(" podstawa jest nieprawidlowa ");
 		}	
		n = n.toUpperCase();
 
		for (i=n.length()-1; i>=0; i--)
		{
			x = Wartosc(n.charAt(i), podstawa);
			if (x < 0)
			{
				this.n = 0;
			}
			result += (x * p);
			p *= podstawa;
		}
		this.n = result;
	}
	private static int Wartosc(char x,int baza) throws LiczbaException
	{
		for(int i=0; i<baza;i++)
		{
			if(x == znaki.charAt(i))
			{
				return i;
			}
		}
		throw new LiczbaException(" Liczba jest nieprawidlowa");
	}
	public String zapis(int podstawa) throws LiczbaException 
	{
		int n = this.n;
		if(n == 0)
		{
			liczba = "";
			
		}
		if(n<0)
		{
			throw new LiczbaException(" Niepoprawna Liczba ");
		}
		else
		{
			while(n>0)
			{
				liczba = znaki.charAt(n % podstawa) + liczba;
				n /= podstawa;
			}
		}
		return liczba;
	}

}
class LiczbaException extends Exception
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	LiczbaException()
	{
	}
	LiczbaException(String problem)
	{
		super(problem);
	}
}